package com.jian.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.jian.domain.User;
import com.jian.requstBody.UserUpdateRequest;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface UserService extends IService<User> {
    /**
     * 用户注册
     *
     * @param account       账号
     * @param password      密码
     * @param checkPassword 校验密码
     * @return 用户注册id
     */
    long userRegister(String account, String password, String checkPassword);

    /**
     * 用户登录
     *
     * @param account  账号
     * @param password 密码
     * @param request  httpRequest
     * @return 返回用户信息
     */
    User userLogin(String account, String password, HttpServletRequest request);

    /**
     * 用户信息脱敏
     *
     * @param originUser 需要脱敏的用户信息
     * @return 完成脱敏的用户信息
     */
    User safetyUser(User originUser);

    /**
     * 查询所有用户
     *
     * @return
     */
    List<User> searchUsers();

    /**
     * 用户注销 移除session
     *
     * @param request
     * @param token
     */
    void userLogout(HttpServletRequest request, String token);

    /**
     * 用户修改信息
     *
     * @param newUser 新的用户信息
     * @return 是否更新成功
     */
    Boolean userUpdateInfo(UserUpdateRequest newUser);

    /**
     * 查询当前用户的角色
     *
     * @param token 当前登录的token
     * @return 返回的角色编号
     */
    int currentUserRole(String token);
}
